
2차원 배열과 가변배열
앞에서는 10개의 공간을 1차원 배열로 표현해봤는데,
이번에는 10개의 공간을 2차원 배열로 표현해볼 것이다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Array
{
static void Main(string[] args)
{
// 1차원 배열
int[] 아파트1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 1차원 배열로 표현한 경우
// 2차원 배열
int[ , ] 아파트2 = new int[5, 2];
아파트2[0, 0] = 0;
아파트2[0, 1] = 1;
아파트2[1, 0] = 2;
아파트2[1, 1] = 3;
아파트2[2, 0] = 4;
아파트2[2, 1] = 5;
아파트2[3, 0] = 6;
아파트2[3, 1] = 7;
아파트2[4, 0] = 8;
아파트2[4, 1] = 9;
// 출력
for (int i = 0; i<5; i++)
{
for(int j = 0; j<2; j++)
{
Console.WriteLine("i값 : " + i + " j값 : "+ j + " 값 : "+ 아파트2[i,j]);
}
Console.WriteLine();
}
}
}
출력
i값 : 0 j값 : 0 값 : 0 i값 : 0 j값 : 1 값 : 1
i값 : 1 j값 : 0 값 : 2 i값 : 1 j값 : 1 값 : 3
i값 : 2 j값 : 0 값 : 4 i값 : 2 j값 : 1 값 : 5
i값 : 3 j값 : 0 값 : 6 i값 : 3 j값 : 1 값 : 7
i값 : 4 j값 : 0 값 : 8 i값 : 4 j값 : 1 값 : 9
가변배열
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Array
{
static void Main(string[] args)
{
// 1차원 배열
int[] 아파트1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 1차원 배열로 표현한 경우
// 2차원 배열
int[,] 아파트2 = new int[5, 2];
// 가변 배열
// int[][] 아파트3 = new int[5][2]; // 에러! => 가변 배열 표현 방식에서는 [5][2]라고 열까지 정해주면 에러
int[][] 아파트4 = new int[5][]; // 가변 배열 : 열은 자유롭게
// 1번째 행
아파트4[0] = new int[2]; // 가변 배열 : 따로 공간을 만들어줘야 한다.
아파트4[0][0] = 0;
아파트4[0][1] = 1;
// 아파트4[0][2] = 2; // 에러! => 존재하지 않는 공간
// 2번째 행
아파트4[1] = new int[1];
아파트4[1][0] = 2;
// 3번째 행
아파트4[2] = new int[3];
아파트4[2][0] = 3;
아파트4[2][1] = 4;
아파트4[2][2] = 5;
// 4번째 행
아파트4[3] = new int[3];
아파트4[3][0] = 6;
아파트4[3][1] = 7;
아파트4[3][2] = 8;
// 5번째 행
아파트4[4] = new int[1];
아파트4[4][0] = 9;
// 출력
for (int i = 0; i < 아파트4.Length; i++)
{
for (int j = 0; j < 아파트4[i].Length; j++)
{
Console.WriteLine("i : " + i + " j : "+j+" 값 : " + 아파트4[i][j]);
}
Console.WriteLine();
}
}
}
출력
i : 0 j : 0 값 : 0 i : 0 j : 1 값 : 1
i : 1 j : 0 값 : 2
i : 2 j : 0 값 : 3 i : 2 j : 1 값 : 4 i : 2 j : 2 값 : 5
i : 3 j : 0 값 : 6 i : 3 j : 1 값 : 7 i : 3 j : 2 값 : 8
i : 4 j : 0 값 : 9
가변배열 + 2차원배열
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Array
{
static void Main(string[] args)
{
// 가변 배열
// int[][] 아파트3 = new int[5][2]; // 에러! => 가변 배열 표현 방식에서는 [5][2]라고 열까지 정해주면 에러
// int[][] 아파트4 = new int[5][]; // 가변 배열 : 열은 자유롭게
int[][,] 가변배열 = new int[3][,];
// 1번째 행
가변배열[0] = new int[2, 3] { { 0, 1, 2 },{ 3, 4, 5 } };
// 2번째 행
가변배열[1] = new int[2, 3];
가변배열[1][0, 0] = 0;
가변배열[1][0, 1] = 1;
가변배열[1][0, 2] = 2;
가변배열[1][1, 0] = 3;
가변배열[1][1, 1] = 4;
가변배열[1][1, 2] = 5;
// 3번째 행
가변배열[2] = new int[3, 2] { {0,1},{2,3},{4,5} };
// 출력
for (int a = 0; a < 가변배열.Length; a++)
{
for(int b = 0; b<가변배열[a].GetLength(0); b++)
{
for(int c = 0; c < 가변배열[a].GetLength(1); c++)
{
Console.WriteLine(가변배열[a][b,c]);
}
}
Console.WriteLine();
}
}
}
출력
0 1 2 3 4 5
0 1 2 3 4 5
0 1 2 3 4 5